<%@ page import="cn.kgc.javaweb.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>jst标签的使用</title>
</head>
<body>
<%--循环标签的基本使用
begin ：起始位置
end：结束位置
step：步长     类似fori循环
--%>
<c:forEach begin="0" end="10"  step="2" var="number">
    <p>${number}</p>
</c:forEach>

<%--分支结构的判定
test :  true  false    true ->执行标签中间的内容  false  -> 标签中的内容不会执行
--%>

<c:if test="${1>2}">
    <button>添加</button>
</c:if>

<c:if test="${1<2}">
    <button>删除</button>
</c:if>


<%
    User user = new User();
    user.setStatus(1);  // 0 管理员  1 教师
    // 登录成功之后 将用于信息缓存session中
    session.setAttribute("user", user);

%>
<%--使用c:if 完成一个简单的后台权限开发--%>

<c:if test="${user.status==0}">
    <p>系统管理</p>
    <ul>
        <li>用户管理</li>
        <li>角色管理</li>
        <li>权限管理</li>
    </ul>
</c:if>


<p>基础管理</p>
<ul>
    <li>学生管理</li>
    <li>成绩管理</li>
    <c:if test="${user.status==0}">
        <li>课程管理</li>
    </c:if>
</ul>


<%--多分支标签的基本使用

选择分支执行的原则：
  自上而下依次判定  哪个先满足条件 则先执行哪个分支 后面的分支不会在执行   如果所有的分支条件都不满足 则执行otherwise分支
--%>

<c:choose>
    <c:when test="false"><button>添加</button></c:when>
    <c:when test="false"><button>删除</button></c:when>
    <c:when test="false"><button>修改</button></c:when>
    <c:otherwise><button>查询</button></c:otherwise>
</c:choose>

<%--输出标签的使用 向页面中输出数据 --%>
<p>number=<c:out value="12"></c:out></p>

<%--使用标签完成页面的重定向--%>
<%--<c:redirect url="http://www.baidu.com"/>--%>
<%--使用标签向作用域中设置值 和删除作用域中的值--%>

<c:set var="number" value="30" scope="session"/>
<%--
    el表达式中不能直接使用request  因为request不是el中的内置对象   需要通过pageContext 上下文对象获取request 从而获取项目的虚拟路径
    pageContext 可以获取其它的jsp中的内置对象
--%>
<c:set var="bp" value="${pageContext.request.contextPath}" scope="session"/>

<p>session-number=${number}</p>

<%--删除域对象中的值--%>
<c:remove var="number" scope="session"/>

<p>session-number=${number}</p>

<form action="${bp}/list" method="post">
    <input type="submit" value="立即登录">
</form>

</body>
</html>
